#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
const int N=10050;
int e[N];
void init(){
    for(int i=1;i<N;i++){
        e[i]=i;
    }
    for(int i=2;i<N;i++){
        if(e[i]==i){
            for(int j=i;j<N;j+=i){
                e[j]=e[j]/i*(i-1);
            }
        }
    }
}
int qPow(int a,int n,int m){
    int ans=1;
    while(n){
        if(n%2){
            ans=(ans*a)%m;
        }
        n/=2;
        a=(a*a)%m;
    }
    return ans;
}
int main(void){
    int n;
    //freopen("out2.txt","w",stdout);
    init();
    while(~scanf("%d",&n)){
    //for(int n=1;n<=1000;n++){
        if(n!=1 && __gcd(2,n)==1){
            int ans=e[n];
            for(int i=e[n]-1;i>=1;i--){
                if(e[n]%i==0){
                    //printf("%d\n",int(pow(2,i)));
                    if(qPow(2,i,n)==1){
                        ans=i;
                    }
                }
            }
            printf("2^%d mod %d = 1\n",ans,n);
        }
        else{
            printf("2^? mod %d = 1\n",n);
        }
    }
    return 0;
}
